home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / TextEdit.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  31.3 KB  |  885 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        TextEdit.p
  3.  
  4.      Contains:    TextEdit Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT TextEdit;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __TEXTEDIT__}
  27. {$SETC __TEXTEDIT__ := 1}
  28.  
  29. {$I+}
  30. {$SETC TextEditIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __QUICKDRAW__}
  37. {$I Quickdraw.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __MIXEDMODE__}
  40. {$I MixedMode.p}
  41. {$ENDC}
  42.  
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48.  
  49. TYPE
  50.     TERecPtr = ^TERec;
  51.     TEPtr                                = ^TERec;
  52.     TEHandle                            = ^TEPtr;
  53. {$IFC TYPED_FUNCTION_POINTERS}
  54.     HighHookProcPtr = PROCEDURE({CONST}VAR r: Rect; pTE: TEPtr);
  55. {$ELSEC}
  56.     HighHookProcPtr = Register68kProcPtr;
  57. {$ENDC}
  58.  
  59. {$IFC TYPED_FUNCTION_POINTERS}
  60.     EOLHookProcPtr = FUNCTION(theChar: ByteParameter; pTE: TEPtr; hTE: TEHandle): BOOLEAN;
  61. {$ELSEC}
  62.     EOLHookProcPtr = Register68kProcPtr;
  63. {$ENDC}
  64.  
  65. {$IFC TYPED_FUNCTION_POINTERS}
  66.     CaretHookProcPtr = PROCEDURE({CONST}VAR r: Rect; pTE: TEPtr);
  67. {$ELSEC}
  68.     CaretHookProcPtr = Register68kProcPtr;
  69. {$ENDC}
  70.  
  71. {$IFC TYPED_FUNCTION_POINTERS}
  72.     WidthHookProcPtr = FUNCTION(textLen: UInt16; textOffset: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle): UInt16;
  73. {$ELSEC}
  74.     WidthHookProcPtr = Register68kProcPtr;
  75. {$ENDC}
  76.  
  77. {$IFC TYPED_FUNCTION_POINTERS}
  78.     TextWidthHookProcPtr = FUNCTION(textLen: UInt16; textOffset: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle): UInt16;
  79. {$ELSEC}
  80.     TextWidthHookProcPtr = Register68kProcPtr;
  81. {$ENDC}
  82.  
  83. {$IFC TYPED_FUNCTION_POINTERS}
  84.     NWidthHookProcPtr = FUNCTION(styleRunLen: UInt16; styleRunOffset: UInt16; slop: INTEGER; direction: INTEGER; textBufferPtr: UNIV Ptr; VAR lineStart: INTEGER; pTE: TEPtr; hTE: TEHandle): UInt16;
  85. {$ELSEC}
  86.     NWidthHookProcPtr = Register68kProcPtr;
  87. {$ENDC}
  88.  
  89. {$IFC TYPED_FUNCTION_POINTERS}
  90.     DrawHookProcPtr = PROCEDURE(textOffset: UInt16; drawLen: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle);
  91. {$ELSEC}
  92.     DrawHookProcPtr = Register68kProcPtr;
  93. {$ENDC}
  94.  
  95. {$IFC TYPED_FUNCTION_POINTERS}
  96.     HitTestHookProcPtr = FUNCTION(styleRunLen: UInt16; styleRunOffset: UInt16; slop: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle; VAR pixelWidth: UInt16; VAR charOffset: UInt16; VAR pixelInChar: BOOLEAN): BOOLEAN;
  97. {$ELSEC}
  98.     HitTestHookProcPtr = Register68kProcPtr;
  99. {$ENDC}
  100.  
  101. {$IFC TYPED_FUNCTION_POINTERS}
  102.     TEFindWordProcPtr = PROCEDURE(currentPos: UInt16; caller: INTEGER; pTE: TEPtr; hTE: TEHandle; VAR wordStart: UInt16; VAR wordEnd: UInt16);
  103. {$ELSEC}
  104.     TEFindWordProcPtr = Register68kProcPtr;
  105. {$ENDC}
  106.  
  107. {$IFC TYPED_FUNCTION_POINTERS}
  108.     TERecalcProcPtr = PROCEDURE(pTE: TEPtr; changeLength: UInt16; VAR lineStart: UInt16; VAR firstChar: UInt16; VAR lastChar: UInt16);
  109. {$ELSEC}
  110.     TERecalcProcPtr = Register68kProcPtr;
  111. {$ENDC}
  112.  
  113. {$IFC TYPED_FUNCTION_POINTERS}
  114.     TEDoTextProcPtr = PROCEDURE(pTE: TEPtr; firstChar: UInt16; lastChar: UInt16; selector: INTEGER; VAR currentGrafPort: GrafPtr; VAR charPosition: INTEGER);
  115. {$ELSEC}
  116.     TEDoTextProcPtr = Register68kProcPtr;
  117. {$ENDC}
  118.  
  119. {$IFC TYPED_FUNCTION_POINTERS}
  120.     TEClickLoopProcPtr = FUNCTION(pTE: TEPtr): BOOLEAN;
  121. {$ELSEC}
  122.     TEClickLoopProcPtr = Register68kProcPtr;
  123. {$ENDC}
  124.  
  125. {$IFC TYPED_FUNCTION_POINTERS}
  126.     WordBreakProcPtr = FUNCTION(text: Ptr; charPos: INTEGER): BOOLEAN;
  127. {$ELSEC}
  128.     WordBreakProcPtr = Register68kProcPtr;
  129. {$ENDC}
  130.  
  131.     Important note about TEClickLoopProcPtr and WordBreakProcPtr
  132.  
  133.     At one point these were defined as returning the function result in the 
  134.     condition code Z-bit.  This was correct, in that it was what the 68K
  135.     implementation of TextEdit actually tested.  But, MixedMode had a different 
  136.     idea of what returning a boolean in the Z-bit meant.  MixedMode was setting
  137.     the Z-bit the complement of what was wanted.  
  138.     
  139.     Therefore, these ProcPtrs have been changed (back) to return the result in
  140.     register D0.  It turns out that for register based routines, 
  141.     MixedMode sets the Z-bit of the 68K emulator based on the contents 
  142.     of the return result register.  Thus we can get the Z-bit set correctly.  
  143.     
  144.     But, when TextEdit is recoded in PowerPC, if it calls a 68K ClickLoop
  145.     or WordBreak routine, register D0 had better have the result (in addition
  146.     to the Z-bit). Therefore all 68K apps should make sure their ClickLoop or
  147.     WordBreak routines set register D0 at the end.
  148. }
  149.  
  150.     There is no function to get/set the low-mem for FindWordHook at 0x07F8.
  151.     This is because it is not a low-mem ProcPtr. That address is the entry
  152.     in the OS TrapTable for trap 0xA0FE.  You can use Get/SetTrapAddress to 
  153.     acccess it.    
  154. }
  155.  
  156. {
  157.     The following ProcPtrs cannot be written in or called from a high-level 
  158.     language without the help of mixed mode or assembly glue because they 
  159.     use the following parameter-passing conventions:
  160.  
  161.     typedef pascal void (*HighHookProcPtr)(const Rect *r, TEPtr pTE);
  162.     typedef pascal void (*CaretHookProcPtr)(const Rect *r, TEPtr pTE);
  163.  
  164.         In:
  165.             =>     r                        on stack
  166.             =>    pTE                        A3.L
  167.         Out:
  168.             none
  169.  
  170.     typedef pascal Boolean (*EOLHookProcPtr)(char theChar, TEPtr pTE, TEHandle hTE);
  171.  
  172.         In:
  173.             =>     theChar                    D0.B
  174.             =>    pTE                        A3.L
  175.             =>    hTE                        A4.L
  176.         Out:
  177.             <=    Boolean                    Z bit of the CCR
  178.  
  179.     typedef pascal unsigned short (*WidthHookProcPtr)(unsigned short textLen,
  180.      unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
  181.     typedef pascal unsigned short (*TextWidthHookProcPtr)(unsigned short textLen,
  182.      unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
  183.  
  184.         In:
  185.             =>     textLen                    D0.W
  186.             =>    textOffset                D1.W
  187.             =>    textBufferPtr            A0.L
  188.             =>    pTE                        A3.L
  189.             =>    hTE                        A4.L
  190.         Out:
  191.             <=    unsigned short            D1.W
  192.  
  193.     typedef pascal unsigned short (*NWidthHookProcPtr)(unsigned short styleRunLen,
  194.      unsigned short styleRunOffset, short slop, short direction, void *textBufferPtr, 
  195.      short *lineStart, TEPtr pTE, TEHandle hTE);
  196.  
  197.         In:
  198.             =>     styleRunLen                D0.W
  199.             =>    styleRunOffset            D1.W
  200.             =>    slop                    D2.W (low)
  201.             =>    direction                D2.W (high)
  202.             =>    textBufferPtr            A0.L
  203.             =>    lineStart                A2.L
  204.             =>    pTE                        A3.L
  205.             =>    hTE                        A4.L
  206.         Out:
  207.             <=    unsigned short            D1.W
  208.  
  209.     typedef pascal void (*DrawHookProcPtr)(unsigned short textOffset, unsigned short drawLen,
  210.      void *textBufferPtr, TEPtr pTE, TEHandle hTE);
  211.  
  212.         In:
  213.             =>     textOffset                D0.W
  214.             =>    drawLen                    D1.W
  215.             =>    textBufferPtr            A0.L
  216.             =>    pTE                        A3.L
  217.             =>    hTE                        A4.L
  218.         Out:
  219.             none
  220.  
  221.     typedef pascal Boolean (*HitTestHookProcPtr)(unsigned short styleRunLen,
  222.      unsigned short styleRunOffset, unsigned short slop, void *textBufferPtr,
  223.      TEPtr pTE, TEHandle hTE, unsigned short *pixelWidth, unsigned short *charOffset, 
  224.      Boolean *pixelInChar);
  225.  
  226.         In:
  227.             =>     styleRunLen                D0.W
  228.             =>    styleRunOffset            D1.W
  229.             =>    slop                    D2.W
  230.             =>    textBufferPtr            A0.L
  231.             =>    pTE                        A3.L
  232.             =>    hTE                        A4.L
  233.         Out:
  234.             <=    pixelWidth                D0.W (low)
  235.             <=    Boolean                    D0.W (high)
  236.             <=    charOffset                D1.W
  237.             <=    pixelInChar                D2.W
  238.  
  239.     typedef pascal void (*TEFindWordProcPtr)(unsigned short currentPos, short caller, 
  240.      TEPtr pTE, TEHandle hTE, unsigned short *wordStart, unsigned short *wordEnd);
  241.  
  242.         In:
  243.             =>     currentPos                D0.W
  244.             =>    caller                    D2.W
  245.             =>    pTE                        A3.L
  246.             =>    hTE                        A4.L
  247.         Out:
  248.             <=    wordStart                D0.W
  249.             <=    wordEnd                    D1.W
  250.  
  251.     typedef pascal void (*TERecalcProcPtr)(TEPtr pTE, unsigned short changeLength,
  252.        unsigned short *lineStart, unsigned short *firstChar, unsigned short *lastChar);
  253.  
  254.         In:
  255.             =>     pTE                        A3.L
  256.             =>    changeLength            D7.W
  257.         Out:
  258.             <=    lineStart                D2.W
  259.             <=    firstChar                D3.W
  260.             <=    lastChar                D4.W
  261.  
  262.     typedef pascal void (*TEDoTextProcPtr)(TEPtr pTE, unsigned short firstChar, unsigned short lastChar,
  263.                          short selector, GrafPtr *currentGrafPort, short *charPosition);
  264.  
  265.         In:
  266.             =>     pTE                        A3.L
  267.             =>    firstChar                D3.W
  268.             =>    lastChar                D4.W
  269.             =>    selector                D7.W
  270.         Out:
  271.             <=    currentGrafPort            A0.L
  272.             <=    charPosition            D0.W
  273.             
  274. }
  275.     HighHookUPP = UniversalProcPtr;
  276.     EOLHookUPP = UniversalProcPtr;
  277.     CaretHookUPP = UniversalProcPtr;
  278.     WidthHookUPP = UniversalProcPtr;
  279.     TextWidthHookUPP = UniversalProcPtr;
  280.     NWidthHookUPP = UniversalProcPtr;
  281.     DrawHookUPP = UniversalProcPtr;
  282.     HitTestHookUPP = UniversalProcPtr;
  283.     TEFindWordUPP = UniversalProcPtr;
  284.     TERecalcUPP = UniversalProcPtr;
  285.     TEDoTextUPP = UniversalProcPtr;
  286.     TEClickLoopUPP = UniversalProcPtr;
  287.     WordBreakUPP = UniversalProcPtr;
  288.     TERec = RECORD
  289.         destRect:                Rect;
  290.         viewRect:                Rect;
  291.         selRect:                Rect;
  292.         lineHeight:                INTEGER;
  293.         fontAscent:                INTEGER;
  294.         selPoint:                Point;
  295.         selStart:                INTEGER;
  296.         selEnd:                    INTEGER;
  297.         active:                    INTEGER;
  298.         wordBreak:                WordBreakUPP;
  299.         clickLoop:                TEClickLoopUPP;
  300.         clickTime:                LONGINT;
  301.         clickLoc:                INTEGER;
  302.         caretTime:                LONGINT;
  303.         caretState:                INTEGER;
  304.         just:                    INTEGER;
  305.         teLength:                INTEGER;
  306.         hText:                    Handle;
  307.         hDispatchRec:            LONGINT;                                {  added to replace recalBack & recalLines.  it's a handle anyway  }
  308.         clikStuff:                INTEGER;
  309.         crOnly:                    INTEGER;
  310.         txFont:                    INTEGER;
  311.         txFace:                    StyleField;                                { txFace is unpacked byte }
  312.         txMode:                    INTEGER;
  313.         txSize:                    INTEGER;
  314.         inPort:                    GrafPtr;
  315.         highHook:                HighHookUPP;
  316.         caretHook:                CaretHookUPP;
  317.         nLines:                    INTEGER;
  318.         lineStarts:                ARRAY [0..16000] OF INTEGER;
  319.     END;
  320.  
  321.  
  322. CONST
  323.                                                                 {  Justification (word alignment) styles  }
  324.     teJustLeft                    = 0;
  325.     teJustCenter                = 1;
  326.     teJustRight                    = -1;
  327.     teForceLeft                    = -2;                            {  new names for the Justification (word alignment) styles  }
  328.     teFlushDefault                = 0;                            { flush according to the line direction  }
  329.     teCenter                    = 1;                            { center justify (word alignment)  }
  330.     teFlushRight                = -1;                            { flush right for all scripts  }
  331.     teFlushLeft                    = -2;                            { flush left for all scripts  }
  332.  
  333.                                                                 {  Set/Replace style modes  }
  334.     fontBit                        = 0;                            { set font }
  335.     faceBit                        = 1;                            { set face }
  336.     sizeBit                        = 2;                            { set size }
  337.     clrBit                        = 3;                            { set color }
  338.     addSizeBit                    = 4;                            { add size mode }
  339.     toggleBit                    = 5;                            { set faces in toggle mode }
  340.  
  341.                                                                 {  TESetStyle/TEContinuousStyle modes  }
  342.     doFont                        = 1;                            {  set font (family) number }
  343.     doFace                        = 2;                            { set character style }
  344.     doSize                        = 4;                            { set type size }
  345.     doColor                        = 8;                            { set color }
  346.     doAll                        = 15;                            { set all attributes }
  347.     addSize                        = 16;                            { adjust type size }
  348.     doToggle                    = 32;                            { toggle mode for TESetStyle }
  349.  
  350.                                                                 {  offsets into TEDispatchRec  }
  351.     EOLHook                        = 0;                            { [UniversalProcPtr] TEEOLHook }
  352.     DRAWHook                    = 4;                            { [UniversalProcPtr] TEWidthHook }
  353.     WIDTHHook                    = 8;                            { [UniversalProcPtr] TEDrawHook }
  354.     HITTESTHook                    = 12;                            { [UniversalProcPtr] TEHitTestHook }
  355.     nWIDTHHook                    = 24;                            { [UniversalProcPtr] nTEWidthHook }
  356.     TextWidthHook                = 28;                            { [UniversalProcPtr] TETextWidthHook }
  357.  
  358.                                                                 {  selectors for TECustomHook  }
  359.     intEOLHook                    = 0;                            { TEIntHook value }
  360.     intDrawHook                    = 1;                            { TEIntHook value }
  361.     intWidthHook                = 2;                            { TEIntHook value }
  362.     intHitTestHook                = 3;                            { TEIntHook value }
  363.     intNWidthHook                = 6;                            { TEIntHook value for new version of WidthHook }
  364.     intTextWidthHook            = 7;                            { TEIntHook value for new TextWidthHook }
  365.     intInlineInputTSMTEPreUpdateHook = 8;                        { TEIntHook value for TSMTEPreUpdateProcPtr callback }
  366.     intInlineInputTSMTEPostUpdateHook = 9;                        { TEIntHook value for TSMTEPostUpdateProcPtr callback }
  367.  
  368.                                                                 {  feature or bit definitions for TEFeatureFlag  }
  369.     teFAutoScroll                = 0;                            { 00000001b }
  370.     teFTextBuffering            = 1;                            { 00000010b }
  371.     teFOutlineHilite            = 2;                            { 00000100b }
  372.     teFInlineInput                = 3;                            { 00001000b  }
  373.     teFUseWhiteBackground        = 4;                            { 00010000b  }
  374.     teFUseInlineInput            = 5;                            { 00100000b  }
  375.     teFInlineInputAutoScroll    = 6;                            { 01000000b  }
  376.  
  377.                                                                 {  action for the new "bit (un)set" interface, TEFeatureFlag  }
  378.     teBitClear                    = 0;
  379.     teBitSet                    = 1;                            { set the selector bit }
  380.     teBitTest                    = -1;                            { no change; just return the current setting }
  381.  
  382.                                                                 { constants for identifying the routine that called FindWord  }
  383.     teWordSelect                = 4;                            { clickExpand to select word }
  384.     teWordDrag                    = 8;                            { clickExpand to drag new word }
  385.     teFromFind                    = 12;                            { FindLine called it ($0C) }
  386.     teFromRecal                    = 16;                            { RecalLines called it ($10)      obsolete  }
  387.  
  388.                                                                 { constants for identifying TEDoText selectors  }
  389.     teFind                        = 0;                            { TEDoText called for searching }
  390.     teHighlight                    = 1;                            { TEDoText called for highlighting }
  391.     teDraw                        = -1;                            { TEDoText called for drawing text }
  392.     teCaret                        = -2;                            { TEDoText called for drawing the caret }
  393.  
  394.  
  395.  
  396.  
  397. TYPE
  398.     Chars                                = PACKED ARRAY [0..32000] OF CHAR;
  399.     CharsPtr                            = ^Chars;
  400.     CharsHandle                            = ^CharsPtr;
  401.     StyleRunPtr = ^StyleRun;
  402.     StyleRun = RECORD
  403.         startChar:                INTEGER;                                { starting character position }
  404.         styleIndex:                INTEGER;                                { index in style table }
  405.     END;
  406.  
  407.     STElementPtr = ^STElement;
  408.     STElement = RECORD
  409.         stCount:                INTEGER;                                { number of runs in this style }
  410.         stHeight:                INTEGER;                                { line height }
  411.         stAscent:                INTEGER;                                { font ascent }
  412.         stFont:                    INTEGER;                                { font (family) number }
  413.         stFace:                    StyleField;                                { character Style }
  414.         stSize:                    INTEGER;                                { size in points }
  415.         stColor:                RGBColor;                                { absolute (RGB) color }
  416.     END;
  417.  
  418.     TEStyleTable                        = ARRAY [0..1776] OF STElement;
  419.     STPtr                                = ^TEStyleTable;
  420.     STHandle                            = ^STPtr;
  421.     LHElementPtr = ^LHElement;
  422.     LHElement = RECORD
  423.         lhHeight:                INTEGER;                                { maximum height in line }
  424.         lhAscent:                INTEGER;                                { maximum ascent in line }
  425.     END;
  426.  
  427.     LHTable                                = ARRAY [0..8000] OF LHElement;
  428.     LHPtr                                = ^LHTable;
  429.     LHHandle                            = ^LHPtr;
  430.     ScrpSTElementPtr = ^ScrpSTElement;
  431.     ScrpSTElement = RECORD
  432.         scrpStartChar:            LONGINT;                                { starting character position }
  433.         scrpHeight:                INTEGER;
  434.         scrpAscent:                INTEGER;
  435.         scrpFont:                INTEGER;
  436.         scrpFace:                StyleField;                                { unpacked byte }
  437.         scrpSize:                INTEGER;
  438.         scrpColor:                RGBColor;
  439.     END;
  440.  
  441. { ARRAY [0..1600] OF ScrpSTElement }
  442.     ScrpSTTable                            = ARRAY [0..1600] OF ScrpSTElement;
  443.     StScrpRecPtr = ^StScrpRec;
  444.     StScrpRec = RECORD
  445.         scrpNStyles:            INTEGER;                                { number of styles in scrap }
  446.         scrpStyleTab:            ScrpSTTable;                            { table of styles for scrap }
  447.     END;
  448.  
  449.     StScrpPtr                            = ^StScrpRec;
  450.     StScrpHandle                        = ^StScrpPtr;
  451.     NullStRecPtr = ^NullStRec;
  452.     NullStRec = RECORD
  453.         teReserved:                LONGINT;                                { reserved for future expansion }
  454.         nullScrap:                StScrpHandle;                            { handle to scrap style table }
  455.     END;
  456.  
  457.     NullStPtr                            = ^NullStRec;
  458.     NullStHandle                        = ^NullStPtr;
  459.     TEStyleRecPtr = ^TEStyleRec;
  460.     TEStyleRec = RECORD
  461.         nRuns:                    INTEGER;                                { number of style runs }
  462.         nStyles:                INTEGER;                                { size of style table }
  463.         styleTab:                STHandle;                                { handle to style table }
  464.         lhTab:                    LHHandle;                                { handle to line-height table }
  465.         teRefCon:                LONGINT;                                { reserved for application use }
  466.         nullStyle:                NullStHandle;                            { Handle to style set at null selection }
  467.         runs:                    ARRAY [0..8000] OF StyleRun;            { ARRAY [0..8000] OF StyleRun }
  468.     END;
  469.  
  470.     TEStylePtr                            = ^TEStyleRec;
  471.     TEStyleHandle                        = ^TEStylePtr;
  472.     TextStylePtr = ^TextStyle;
  473.     TextStyle = RECORD
  474.         tsFont:                    INTEGER;                                { font (family) number }
  475.         tsFace:                    StyleField;                                { character Style }
  476.         tsSize:                    INTEGER;                                { size in point }
  477.         tsColor:                RGBColor;                                { absolute (RGB) color }
  478.     END;
  479.  
  480.     TextStyleHandle                        = ^TextStylePtr;
  481.     TEIntHook                            = INTEGER;
  482.  
  483. CONST
  484.     uppHighHookProcInfo = $0000000F;
  485.     uppEOLHookProcInfo = $0000001F;
  486.     uppCaretHookProcInfo = $0000000F;
  487.     uppWidthHookProcInfo = $0000002F;
  488.     uppTextWidthHookProcInfo = $0000002F;
  489.     uppNWidthHookProcInfo = $0000003F;
  490.     uppDrawHookProcInfo = $0000004F;
  491.     uppHitTestHookProcInfo = $0000005F;
  492.     uppTEFindWordProcInfo = $0000006F;
  493.     uppTERecalcProcInfo = $0000009F;
  494.     uppTEDoTextProcInfo = $000000AF;
  495.     uppTEClickLoopProcInfo = $0000F812;
  496.     uppWordBreakProcInfo = $00029812;
  497.  
  498. FUNCTION NewHighHookProc(userRoutine: HighHookProcPtr): HighHookUPP;
  499.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  500.     INLINE $2E9F;
  501.     {$ENDC}
  502.  
  503. FUNCTION NewEOLHookProc(userRoutine: EOLHookProcPtr): EOLHookUPP;
  504.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  505.     INLINE $2E9F;
  506.     {$ENDC}
  507.  
  508. FUNCTION NewCaretHookProc(userRoutine: CaretHookProcPtr): CaretHookUPP;
  509.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  510.     INLINE $2E9F;
  511.     {$ENDC}
  512.  
  513. FUNCTION NewWidthHookProc(userRoutine: WidthHookProcPtr): WidthHookUPP;
  514.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  515.     INLINE $2E9F;
  516.     {$ENDC}
  517.  
  518. FUNCTION NewTextWidthHookProc(userRoutine: TextWidthHookProcPtr): TextWidthHookUPP;
  519.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  520.     INLINE $2E9F;
  521.     {$ENDC}
  522.  
  523. FUNCTION NewNWidthHookProc(userRoutine: NWidthHookProcPtr): NWidthHookUPP;
  524.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  525.     INLINE $2E9F;
  526.     {$ENDC}
  527.  
  528. FUNCTION NewDrawHookProc(userRoutine: DrawHookProcPtr): DrawHookUPP;
  529.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  530.     INLINE $2E9F;
  531.     {$ENDC}
  532.  
  533. FUNCTION NewHitTestHookProc(userRoutine: HitTestHookProcPtr): HitTestHookUPP;
  534.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  535.     INLINE $2E9F;
  536.     {$ENDC}
  537.  
  538. FUNCTION NewTEFindWordProc(userRoutine: TEFindWordProcPtr): TEFindWordUPP;
  539.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  540.     INLINE $2E9F;
  541.     {$ENDC}
  542.  
  543. FUNCTION NewTERecalcProc(userRoutine: TERecalcProcPtr): TERecalcUPP;
  544.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  545.     INLINE $2E9F;
  546.     {$ENDC}
  547.  
  548. FUNCTION NewTEDoTextProc(userRoutine: TEDoTextProcPtr): TEDoTextUPP;
  549.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  550.     INLINE $2E9F;
  551.     {$ENDC}
  552.  
  553. FUNCTION NewTEClickLoopProc(userRoutine: TEClickLoopProcPtr): TEClickLoopUPP;
  554.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  555.     INLINE $2E9F;
  556.     {$ENDC}
  557.  
  558. FUNCTION NewWordBreakProc(userRoutine: WordBreakProcPtr): WordBreakUPP;
  559.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  560.     INLINE $2E9F;
  561.     {$ENDC}
  562.  
  563. PROCEDURE CallHighHookProc({CONST}VAR r: Rect; pTE: TEPtr; userRoutine: HighHookUPP);
  564.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  565.     {To be implemented:  Glue to move parameters into registers.}
  566.     {$ENDC}
  567.  
  568. FUNCTION CallEOLHookProc(theChar: ByteParameter; pTE: TEPtr; hTE: TEHandle; userRoutine: EOLHookUPP): BOOLEAN;
  569.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  570.     {To be implemented:  Glue to move parameters into registers.}
  571.     {$ENDC}
  572.  
  573. PROCEDURE CallCaretHookProc({CONST}VAR r: Rect; pTE: TEPtr; userRoutine: CaretHookUPP);
  574.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  575.     {To be implemented:  Glue to move parameters into registers.}
  576.     {$ENDC}
  577.  
  578. FUNCTION CallWidthHookProc(textLen: UInt16; textOffset: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: WidthHookUPP): UInt16;
  579.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  580.     {To be implemented:  Glue to move parameters into registers.}
  581.     {$ENDC}
  582.  
  583. FUNCTION CallTextWidthHookProc(textLen: UInt16; textOffset: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: TextWidthHookUPP): UInt16;
  584.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  585.     {To be implemented:  Glue to move parameters into registers.}
  586.     {$ENDC}
  587.  
  588. FUNCTION CallNWidthHookProc(styleRunLen: UInt16; styleRunOffset: UInt16; slop: INTEGER; direction: INTEGER; textBufferPtr: UNIV Ptr; VAR lineStart: INTEGER; pTE: TEPtr; hTE: TEHandle; userRoutine: NWidthHookUPP): UInt16;
  589.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  590.     {To be implemented:  Glue to move parameters into registers.}
  591.     {$ENDC}
  592.  
  593. PROCEDURE CallDrawHookProc(textOffset: UInt16; drawLen: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: DrawHookUPP);
  594.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  595.     {To be implemented:  Glue to move parameters into registers.}
  596.     {$ENDC}
  597.  
  598. FUNCTION CallHitTestHookProc(styleRunLen: UInt16; styleRunOffset: UInt16; slop: UInt16; textBufferPtr: UNIV Ptr; pTE: TEPtr; hTE: TEHandle; VAR pixelWidth: UInt16; VAR charOffset: UInt16; VAR pixelInChar: BOOLEAN; userRoutine: HitTestHookUPP): BOOLEAN;
  599.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  600.     {To be implemented:  Glue to move parameters into registers.}
  601.     {$ENDC}
  602.  
  603. PROCEDURE CallTEFindWordProc(currentPos: UInt16; caller: INTEGER; pTE: TEPtr; hTE: TEHandle; VAR wordStart: UInt16; VAR wordEnd: UInt16; userRoutine: TEFindWordUPP);
  604.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  605.     {To be implemented:  Glue to move parameters into registers.}
  606.     {$ENDC}
  607.  
  608. PROCEDURE CallTERecalcProc(pTE: TEPtr; changeLength: UInt16; VAR lineStart: UInt16; VAR firstChar: UInt16; VAR lastChar: UInt16; userRoutine: TERecalcUPP);
  609.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  610.     {To be implemented:  Glue to move parameters into registers.}
  611.     {$ENDC}
  612.  
  613. PROCEDURE CallTEDoTextProc(pTE: TEPtr; firstChar: UInt16; lastChar: UInt16; selector: INTEGER; VAR currentGrafPort: GrafPtr; VAR charPosition: INTEGER; userRoutine: TEDoTextUPP);
  614.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  615.     {To be implemented:  Glue to move parameters into registers.}
  616.     {$ENDC}
  617.  
  618. FUNCTION CallTEClickLoopProc(pTE: TEPtr; userRoutine: TEClickLoopUPP): BOOLEAN;
  619.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  620.     {To be implemented:  Glue to move parameters into registers.}
  621.     {$ENDC}
  622.  
  623. FUNCTION CallWordBreakProc(text: Ptr; charPos: INTEGER; userRoutine: WordBreakUPP): BOOLEAN;
  624.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  625.     {To be implemented:  Glue to move parameters into registers.}
  626.     {$ENDC}
  627.  
  628. CONST
  629.                                                                 {  feature bit 4 for TEFeatureFlag no longer in use  }
  630.     teFUseTextServices            = 4;                            { 00010000b  }
  631.  
  632.  
  633. FUNCTION TEScrapHandle: Handle;
  634.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  635.     INLINE $2EB8, $0AB4;
  636.     {$ENDC}
  637.  
  638. FUNCTION TEGetScrapLength: LONGINT;
  639.  
  640. PROCEDURE TEInit;
  641.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  642.     INLINE $A9CC;
  643.     {$ENDC}
  644. FUNCTION TENew({CONST}VAR destRect: Rect; {CONST}VAR viewRect: Rect): TEHandle;
  645.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  646.     INLINE $A9D2;
  647.     {$ENDC}
  648. PROCEDURE TEDispose(hTE: TEHandle);
  649.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  650.     INLINE $A9CD;
  651.     {$ENDC}
  652. PROCEDURE TESetText(text: UNIV Ptr; length: LONGINT; hTE: TEHandle);
  653.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  654.     INLINE $A9CF;
  655.     {$ENDC}
  656. FUNCTION TEGetText(hTE: TEHandle): CharsHandle;
  657.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  658.     INLINE $A9CB;
  659.     {$ENDC}
  660. PROCEDURE TEIdle(hTE: TEHandle);
  661.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  662.     INLINE $A9DA;
  663.     {$ENDC}
  664. PROCEDURE TESetSelect(selStart: LONGINT; selEnd: LONGINT; hTE: TEHandle);
  665.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  666.     INLINE $A9D1;
  667.     {$ENDC}
  668. PROCEDURE TEActivate(hTE: TEHandle);
  669.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  670.     INLINE $A9D8;
  671.     {$ENDC}
  672. PROCEDURE TEDeactivate(hTE: TEHandle);
  673.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  674.     INLINE $A9D9;
  675.     {$ENDC}
  676. PROCEDURE TEKey(key: CharParameter; hTE: TEHandle);
  677.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  678.     INLINE $A9DC;
  679.     {$ENDC}
  680. PROCEDURE TECut(hTE: TEHandle);
  681.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  682.     INLINE $A9D6;
  683.     {$ENDC}
  684. PROCEDURE TECopy(hTE: TEHandle);
  685.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  686.     INLINE $A9D5;
  687.     {$ENDC}
  688. PROCEDURE TEPaste(hTE: TEHandle);
  689.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  690.     INLINE $A9DB;
  691.     {$ENDC}
  692. PROCEDURE TEDelete(hTE: TEHandle);
  693.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  694.     INLINE $A9D7;
  695.     {$ENDC}
  696. PROCEDURE TEInsert(text: UNIV Ptr; length: LONGINT; hTE: TEHandle);
  697.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  698.     INLINE $A9DE;
  699.     {$ENDC}
  700. PROCEDURE TESetAlignment(just: INTEGER; hTE: TEHandle);
  701.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  702.     INLINE $A9DF;
  703.     {$ENDC}
  704. PROCEDURE TEUpdate({CONST}VAR rUpdate: Rect; hTE: TEHandle);
  705.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  706.     INLINE $A9D3;
  707.     {$ENDC}
  708. PROCEDURE TETextBox(text: UNIV Ptr; length: LONGINT; {CONST}VAR box: Rect; just: INTEGER);
  709.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  710.     INLINE $A9CE;
  711.     {$ENDC}
  712. PROCEDURE TEScroll(dh: INTEGER; dv: INTEGER; hTE: TEHandle);
  713.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  714.     INLINE $A9DD;
  715.     {$ENDC}
  716. PROCEDURE TESelView(hTE: TEHandle);
  717.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  718.     INLINE $A811;
  719.     {$ENDC}
  720. PROCEDURE TEPinScroll(dh: INTEGER; dv: INTEGER; hTE: TEHandle);
  721.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  722.     INLINE $A812;
  723.     {$ENDC}
  724. PROCEDURE TEAutoView(fAuto: BOOLEAN; hTE: TEHandle);
  725.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  726.     INLINE $A813;
  727.     {$ENDC}
  728. PROCEDURE TECalText(hTE: TEHandle);
  729.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  730.     INLINE $A9D0;
  731.     {$ENDC}
  732. FUNCTION TEGetOffset(pt: Point; hTE: TEHandle): INTEGER;
  733.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  734.     INLINE $A83C;
  735.     {$ENDC}
  736. FUNCTION TEGetPoint(offset: INTEGER; hTE: TEHandle): Point;
  737.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  738.     INLINE $3F3C, $0008, $A83D;
  739.     {$ENDC}
  740. PROCEDURE TEClick(pt: Point; fExtend: BOOLEAN; h: TEHandle);
  741.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  742.     INLINE $A9D4;
  743.     {$ENDC}
  744. FUNCTION TEStyleNew({CONST}VAR destRect: Rect; {CONST}VAR viewRect: Rect): TEHandle;
  745.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  746.     INLINE $A83E;
  747.     {$ENDC}
  748. PROCEDURE TESetStyleHandle(theHandle: TEStyleHandle; hTE: TEHandle);
  749.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  750.     INLINE $3F3C, $0005, $A83D;
  751.     {$ENDC}
  752. FUNCTION TEGetStyleHandle(hTE: TEHandle): TEStyleHandle;
  753.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  754.     INLINE $3F3C, $0004, $A83D;
  755.     {$ENDC}
  756. PROCEDURE TEGetStyle(offset: INTEGER; VAR theStyle: TextStyle; VAR lineHeight: INTEGER; VAR fontAscent: INTEGER; hTE: TEHandle);
  757.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  758.     INLINE $3F3C, $0003, $A83D;
  759.     {$ENDC}
  760. PROCEDURE TEStylePaste(hTE: TEHandle);
  761.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  762.     INLINE $3F3C, $0000, $A83D;
  763.     {$ENDC}
  764. PROCEDURE TESetStyle(mode: INTEGER; {CONST}VAR newStyle: TextStyle; fRedraw: BOOLEAN; hTE: TEHandle);
  765.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  766.     INLINE $3F3C, $0001, $A83D;
  767.     {$ENDC}
  768. PROCEDURE TEReplaceStyle(mode: INTEGER; {CONST}VAR oldStyle: TextStyle; {CONST}VAR newStyle: TextStyle; fRedraw: BOOLEAN; hTE: TEHandle);
  769.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  770.     INLINE $3F3C, $0002, $A83D;
  771.     {$ENDC}
  772. FUNCTION TEGetStyleScrapHandle(hTE: TEHandle): StScrpHandle;
  773.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  774.     INLINE $3F3C, $0006, $A83D;
  775.     {$ENDC}
  776. PROCEDURE TEStyleInsert(text: UNIV Ptr; length: LONGINT; hST: StScrpHandle; hTE: TEHandle);
  777.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  778.     INLINE $3F3C, $0007, $A83D;
  779.     {$ENDC}
  780. FUNCTION TEGetHeight(endLine: LONGINT; startLine: LONGINT; hTE: TEHandle): LONGINT;
  781.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  782.     INLINE $3F3C, $0009, $A83D;
  783.     {$ENDC}
  784. FUNCTION TEContinuousStyle(VAR mode: INTEGER; VAR aStyle: TextStyle; hTE: TEHandle): BOOLEAN;
  785.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  786.     INLINE $3F3C, $000A, $A83D;
  787.     {$ENDC}
  788. PROCEDURE TEUseStyleScrap(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
  789.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  790.     INLINE $3F3C, $000B, $A83D;
  791.     {$ENDC}
  792. PROCEDURE TECustomHook(which: TEIntHook; VAR addr: UniversalProcPtr; hTE: TEHandle);
  793.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  794.     INLINE $3F3C, $000C, $A83D;
  795.     {$ENDC}
  796. FUNCTION TENumStyles(rangeStart: LONGINT; rangeEnd: LONGINT; hTE: TEHandle): LONGINT;
  797.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  798.     INLINE $3F3C, $000D, $A83D;
  799.     {$ENDC}
  800. FUNCTION TEFeatureFlag(feature: INTEGER; action: INTEGER; hTE: TEHandle): INTEGER;
  801.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  802.     INLINE $3F3C, $000E, $A83D;
  803.     {$ENDC}
  804. FUNCTION TEGetHiliteRgn(region: RgnHandle; hTE: TEHandle): OSErr;
  805.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  806.     INLINE $3F3C, $000F, $A83D;
  807.     {$ENDC}
  808. PROCEDURE TESetScrapLength(length: LONGINT);
  809. FUNCTION TEFromScrap: OSErr;
  810. FUNCTION TEToScrap: OSErr;
  811. PROCEDURE TESetClickLoop(clikProc: TEClickLoopUPP; hTE: TEHandle);
  812. PROCEDURE TESetWordBreak(wBrkProc: WordBreakUPP; hTE: TEHandle);
  813.  
  814. {$IFC OLDROUTINENAMES }
  815. PROCEDURE TESetJust(just: INTEGER; hTE: TEHandle);
  816.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  817.     INLINE $A9DF;
  818.     {$ENDC}
  819. PROCEDURE TextBox(text: UNIV Ptr; length: LONGINT; {CONST}VAR box: Rect; just: INTEGER);
  820.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  821.     INLINE $A9CE;
  822.     {$ENDC}
  823. FUNCTION TEStylNew({CONST}VAR destRect: Rect; {CONST}VAR viewRect: Rect): TEHandle;
  824.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  825.     INLINE $A83E;
  826.     {$ENDC}
  827. PROCEDURE SetStylHandle(theHandle: TEStyleHandle; hTE: TEHandle);
  828.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  829.     INLINE $3F3C, $0005, $A83D;
  830.     {$ENDC}
  831. PROCEDURE SetStyleHandle(theHandle: TEStyleHandle; hTE: TEHandle);
  832.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  833.     INLINE $3F3C, $0005, $A83D;
  834.     {$ENDC}
  835. FUNCTION GetStylHandle(hTE: TEHandle): TEStyleHandle;
  836.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  837.     INLINE $3F3C, $0004, $A83D;
  838.     {$ENDC}
  839. FUNCTION GetStyleHandle(hTE: TEHandle): TEStyleHandle;
  840.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  841.     INLINE $3F3C, $0004, $A83D;
  842.     {$ENDC}
  843. PROCEDURE TEStylPaste(hTE: TEHandle);
  844.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  845.     INLINE $3F3C, $0000, $A83D;
  846.     {$ENDC}
  847. FUNCTION GetStylScrap(hTE: TEHandle): StScrpHandle;
  848.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  849.     INLINE $3F3C, $0006, $A83D;
  850.     {$ENDC}
  851. FUNCTION GetStyleScrap(hTE: TEHandle): StScrpHandle;
  852.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  853.     INLINE $3F3C, $0006, $A83D;
  854.     {$ENDC}
  855. PROCEDURE SetStylScrap(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
  856.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  857.     INLINE $3F3C, $000B, $A83D;
  858.     {$ENDC}
  859. PROCEDURE SetStyleScrap(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
  860.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  861.     INLINE $3F3C, $000B, $A83D;
  862.     {$ENDC}
  863. PROCEDURE TEStylInsert(text: UNIV Ptr; length: LONGINT; hST: StScrpHandle; hTE: TEHandle);
  864.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  865.     INLINE $3F3C, $0007, $A83D;
  866.     {$ENDC}
  867. PROCEDURE TESetScrapLen(length: LONGINT);
  868. FUNCTION TEGetScrapLen: LONGINT;
  869. PROCEDURE SetClikLoop(clikProc: TEClickLoopUPP; hTE: TEHandle);
  870. PROCEDURE SetWordBreak(wBrkProc: WordBreakUPP; hTE: TEHandle);
  871. {$ENDC}  {OLDROUTINENAMES}
  872.  
  873. {$ALIGN RESET}
  874. {$POP}
  875.  
  876. {$SETC UsingIncludes := TextEditIncludes}
  877.  
  878. {$ENDC} {__TEXTEDIT__}
  879.  
  880. {$IFC NOT UsingIncludes}
  881.  END.
  882. {$ENDC}
  883.